The present invention relates to the field of computer graphics, and in particular to methods and apparatus for creating, modifying, and using lights and other components to control the attributes and appearance of objects in computer graphics images. Many computer graphic images are created by mathematically modeling the interaction of light with a three dimensional scene from a given viewpoint. This process, called rendering, generates a two-dimensional image of the scene from the given viewpoint, and is analogous to taking a photograph of a real-world scene. Animated sequences can be created by rendering a sequence of images of a scene as the scene is gradually changed over time. A great deal of effort has been devoted to making realistic looking and artistically compelling rendered images and animations.
Rendering is often computationally expensive, in terms of the amount of both computations and memory required. Typically, the computational expense of rendering increases with increased complexity of the scene.
To improve rendering efficiency and reduce the computational cost of rendering, it is desirable to minimize the complexity of scenes where possible. One approach to achieving this end uses multiple versions of objects of varying complexity in rendering. This approach, referred to as level of detail, substitutes less complicated versions of an object during rendering when the viewer is not likely to notice any differences, such as when the object is distant or partially hidden from the camera viewpoint. Similarly, computer simulations and animation systems may also employ less detailed versions of objects and/or simplified algorithms when the viewer is less likely to notice any differences from the more complicated version of the object and/or algorithm.
There are a variety of different level of detail rendering algorithms used to select and render the appropriate version of an object. Typically, these algorithms strive to reduce rendering computational costs and maintain the overall visual quality. Additionally, these algorithms strive to hide or minimize any abrupt visual discontinuities when switching between different levels of detail of an object. In some types of level of detail algorithms, a user manually specifies a transition point between different level of detail models of an object. The renderer uses these user-defined transition points to select the appropriate version of an object during rendering.
Previously, users would be required to specify level of detail transition points in terms of abstract parameter values, such as the distance from the camera at which to switch between two different versions of an object or the number of pixels covered by a projection of the object or of a bounding box of the object. Users would have to rely on their intuition to set these parameter values appropriately. Also, users would often spend considerable amounts of time fine-tuning the values of these parameters to ensure visually satisfactory results.
It is desirable for a system and method to facilitate the specification of transition points between different versions of objects. It is further desirable for the system and method to enable users to specify visually satisfactory transition point values without requiring considerable fine-tuning. It also desirable for the system and method to be applicable to a wide variety of different types of level of detail, rendering, animation, and simulation algorithms.